#include "head.h"

// 一个读取配置文件的函数实现
// 从配置文件中寻找需要的资源
// 如果需要ip,传入参数直接设置为"ip"的字符串即可,其他参数同理.
// 每次调用只查找一个关键字,比如传"ip"就只查找ip对应的值,然后返回,返回值类型统一为char*,
//就是说如果想使用ip地址和端口.分别还要对传出参数使用inet_addr函数和atoi函数转换格式
int getparameter(char *key, char *value) {
  // 函数实现
  FILE *file = fopen("config.ini", "r");
  //打开配置文件
  while (1) {
    char line[100];
    bzero(line, sizeof(line));

    // 读一行数据,从配置文件中.
    char *res = fgets(line, sizeof(line), file);
    if (res == NULL) {
      //-1表示配置文件中没有想要的内容.可能是输入错误,可能是配置文件暂时没有更新
      return -1;
    }
    // 处理数据
    char *line_key = strtok(line, "=");
    if (strcmp(key, line_key) == 0){
      // 要找的内容
      char *line_value = strtok(NULL, "=");
      memcpy(value, line_value, strlen(line_value));
      return 0;
    }
  }
  return 0;
}

// int main(int argc, char *argv[]) {
//   char ip[100];
//   bzero(ip, sizeof(ip));
//   getparameter("ip", ip);
//   printf("ip is = %s", ip);

//   char port[100];
//   bzero(port, sizeof(port));
//   getparameter("port", port);
//   printf("port is = %s", port);

//   char file[100];
//   bzero(file, sizeof(file));
//   getparameter("file", file);
//   printf("file is = %s", file);

//   char name[100];
//   bzero(name, sizeof(name));
//   getparameter("mysql_user", name);
//   printf("mysql_user is = %s", name);

//   return 0;
// }
